#!/bin/bash
###############################################################################
# @用例ID: 20231121-160416-101538570
# @用例名称: test_mtr_localhost
# @用例级别: 3
# @用例标签:
# @扩展属性:
# @用例类型: 功能测试
# @自动化: 1
# @超时时间: 0
# @用例描述: TODO: 简要描述用例测试的内容
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"

    # @预置条件: 安装 mtr
    assert_true yum install -y mtr
    return 0
}

do_test() {
    msg "this is do_test"
    cd $g_tmpdir

    # @测试步骤: mtr 访问 127.0.0.1
    mtr -r 127.0.0.1 -c 1 > local.txt
    # @预期结果: 成功
    assert_true [ $? -eq 0 ]
    # 输出预期 
    # Start: Tue Nov 21 16:49:37 2023
    # HOST: VM_32_148_centos            Loss%   Snt   Last   Avg  Best  Wrst StDev
    # 1.|-- VM_32_148_centos           0.0%     1    0.1   0.1   0.1   0.1   0.0
    # 判断是否只有 3 行
    assert_true [ `wc -l < local.txt` -eq 3 ]

    # 第一行包含Start
    head local.txt -n 1 | grep Start
    assert_true [ $? -eq 0 ]

    grep HOST local.txt
    assert_true [ $? -eq 0 ]

    grep Loss local.txt
    assert_true [ $? -eq 0 ]

    # 最后一行 1.|开头
    tail -n 1 local.txt | grep "1\.|.*"
    assert_true [ $? -eq 0 ]

    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
